home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir36 / sw_46.zip / SW-46.DOC < prev    next >
Text File  |  1993-11-08  |  62KB  |  1,270 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                    ╔═══════════════════════════════════╗  
  20.                    ║                                   ║▒▒
  21.                    ║           SCREEN  WIZARD          ║▒▒
  22.                    ║       Batch File Enhancement      ║▒▒
  23.                    ║            Version  4.6           ║▒▒
  24.                    ║                                   ║▒▒
  25.                    ╚═══════════════════════════════════╝▒▒
  26.                      ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.                                November 8, 1993
  52.  
  53.  
  54.                               TABLE OF CONTENTS
  55.  
  56. 1.0  INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  57.      Screen Wizard  . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  58.      DI.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  59.      Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  60.      Options  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  61.      Notes on DOS . . . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  62.  
  63. 2.0  WINDOW APPEARANCE  . . . . . . . . . . . . . . . . . . . . . . . . .    3
  64.      /F#  Foreground Color   /B#  Background Color  . . . . . . . . . . .    3
  65.      Color Values . . . . . . . . . . . . . . . . . . . . . . . . . . . .    3
  66.      /F#,# Border Background Color  . . . . . . . . . . . . . . . . . . .    3
  67.      /L#  Window Border (Lines) . . . . . . . . . . . . . . . . . . . . .    3
  68.      /S#  Shadows . . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  69.      /3D# 3-D Frame . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  70.      /W   Wide Edge . . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  71.      /2   Double Spacing   /0  No Margin  . . . . . . . . . . . . . . . .    4
  72.      /R#  Row   /C#  Column . . . . . . . . . . . . . . . . . . . . . . .    4
  73.      /H#  Here  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  74.      /D   Draw Window . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  75.      /Z   Zoom Window . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  76.  
  77. 3.0  TEXT APPEARANCE  . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  78.      /T#  Text Color   /G#  Global Text Color . . . . . . . . . . . . . .    5
  79.      /E#  Enhanced Text Color . . . . . . . . . . . . . . . . . . . . . .    5
  80.      /M#  Border Message  . . . . . . . . . . . . . . . . . . . . . . . .    6
  81.      /J#  Justify . . . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  82.  
  83. 4.0  SCREEN APPEARANCE  . . . . . . . . . . . . . . . . . . . . . . . . .    6
  84.      /K#  Klear Screen (with optional Fill Character) . . . . . . . . . .    6
  85.      /K#  Klear Screen, set Foreground Color  . . . . . . . . . . . . . .    6
  86.      /K#  Klear Screen (with optional Fill String)  . . . . . . . . . . .    6
  87.      /O#  Outside Edge (Screen Border)  . . . . . . . . . . . . . . . . .    7
  88.      /X#  Xtra Lines  . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  89.      /@#  Set Cursor  . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  90.      /@-  Hide Cursor . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  91.      /D#  Screen Saver Delay  . . . . . . . . . . . . . . . . . . . . . .    7
  92.  
  93. 5.0  OTHER SWITCHES . . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  94.      /P#  Pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  95.      /Q   Query . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  96.      /Q   Function Keys . . . . . . . . . . . . . . . . . . . . . . . . .    8
  97.      /Q   Special Characters, ~ ` ^ * . . . . . . . . . . . . . . . . . .    8
  98.      /I#  User Input  . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  99.      /I#var  User Input, Custom Variable Name . . . . . . . . . . . . . .    9
  100.      /I#  User Input, Multiple strings  . . . . . . . . . . . . . . . . .   10
  101.      /I####  User Input, Long Strings . . . . . . . . . . . . . . . . . .   10
  102.      /I##*  User Input, Password Blanking . . . . . . . . . . . . . . . .   10
  103.      /N#  Input Line Number . . . . . . . . . . . . . . . . . . . . . . .   10
  104.      /U   Input Uppercase . . . . . . . . . . . . . . . . . . . . . . . .   10
  105.      /D   Draw Window . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  106.      /ch  Fill Line . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  107.      /ch/ Window Separator  . . . . . . . . . . . . . . . . . . . . . . .   11
  108.  
  109.                                       i
  110.  
  111.      /A#  Alert   /A#,#  Alert with Frequency, Duration . . . . . . . . .   11
  112.      /A##-##[,##]  Alert Sweep  . . . . . . . . . . . . . . . . . . . . .   12
  113.  
  114. 6.0  DEFAULTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   12
  115.  
  116. 7.0  SCREEN DEFINITIONS . . . . . . . . . . . . . . . . . . . . . . . . .   12
  117.  
  118. 8.0  TIPS AND TRICKS  . . . . . . . . . . . . . . . . . . . . . . . . . .   15
  119.  
  120. 9.0  SHAREWARE INFORMATION  . . . . . . . . . . . . . . . . . . . . . . .   16
  121.      New Security Version . . . . . . . . . . . . . . . . . . . . . . . .   16
  122.      *** BONUS PROGRAMS! ***  . . . . . . . . . . . . . . . . . . . . . .   17
  123.      **** Bonus CD from JCS Marketing ****  . . . . . . . . . . . . . . .   17
  124.      Screen Wizard History  . . . . . . . . . . . . . . . . . . . . . . .   18
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.                                       ii
  168.  
  169.                               Screen Wizard 4.6
  170.                            (c) 1993 - Warren Small
  171.  
  172. 1.0  INTRODUCTION
  173. ─────────────────────────────────────────────────────────────────────────────
  174.      The batch file language for the IBM PC could be described as useful but
  175. not much else. It is lacking a great deal in terms of flexibility. These 2
  176. utilities, Screen Wizard and DI.EXE, attempt to make batch files much more
  177. powerful and at the same time make them nice to look at.
  178.  
  179.      Screen Wizard grew out of my hatred for the ECHO statement. Any time
  180. that I needed to say something to the user, ECHO was the only way. It was
  181. slow and difficult to make look halfway decent. And if I wanted color, there
  182. was ANSI.SYS...
  183.  
  184.      DI.EXE was introduced with SW 4.1 as a response to users who have been
  185. utilizing SW as an install tool for software distribution. DI allows interro-
  186. gation of the disk drives to determine if they are ready for whatever use you
  187. had in mind. This way you can avoid hardware errors which can pop up in the
  188. middle of your nice SW screens. See DI-14.DOC for the details on using DI.
  189.  
  190.      Screen Wizard will display up to 50 lines of text in a window using
  191. either its command line format or an external 'Screen Definition' file. With
  192. either method, the color of each line can be defined separately or as a
  193. group. Also, the colors for the window, its border, the screen background and
  194. its border can be specified. Five different window borders are possible and
  195. the screen background can be filled with characters or complete strings.
  196.  
  197.      Screen Wizard also provides functions for retrieving input from the
  198. user, either single keystrokes or strings, controlling batch file execution
  199. through branching and alerting the user with various sounds or even simple
  200. tunes.
  201.  
  202. Command Line Syntax:
  203.  
  204.        SW [options] "text1" [options] ["text2"] [options] ["text3"] ...
  205.  
  206. External File Syntax:
  207.  
  208.                              SW @filename [label]
  209.  
  210.      The biggest advantage to using the external file approach is that more
  211. than one window can be displayed with only one call to SW! This can be a
  212. tremendous speed advantage if the batch file is being run from a floppy disk.
  213. The screen definition can also be written into the batch file that utilizes
  214. it so that disk space is used optimally. The optional label shown above is
  215. used to mark different definitions within the same file. The demo batch file,
  216. SW46DEMO.BAT, contains many examples of both methods. See page 12 for more
  217. information.
  218.  
  219.      On the next page is a list of the various switches along with a short
  220. description of what each does. This list appears on the screen when SW is
  221. called without parameters.
  222.  
  223.  
  224.  
  225.                                     Page 1
  226.  
  227.                               Screen Wizard 4.6
  228.                            (c) 1993 - Warren Small
  229.  
  230.                                    Options
  231.  
  232. Window:  /f# Foregnd (0-15) /b# Backgnd (0-7) /l# Border (0-5) /w Wide Edge
  233.          /s# Shadow (1-4)  /3D# 3-D Frame  /2 Double Spacing  /0 No Margin
  234.          /r# Row (1-25)  /c# Col (1-80)  /h# here + #   /z Zoom  /d Draw
  235.  Text:   /t#|g# Text (0-15)  /e# Enhanced Text  /m# Border Msg  /j# Justify
  236. Screen:  /k#[ ] Clear screen (0-7) [char]  /o# Outside edge  
  237.          /@# Set Cursor  /d# Saver Delay (0-30)
  238. Other:   /p#[-] Pause  /a#[,#] Alert (0-9)  /q... Query  /char[/] Fill Line
  239.          /i#[[*]var] User Input  /n# Input Line  /u Uppercase  /x# Xtra Lines
  240.  
  241.       Switches can be in almost any order, upper or lower case (except /q and
  242. /i, see page 8), and a space is required between each.
  243.  
  244.       While developing batch files using SW, you should be aware of a special
  245. EL code returned when SW encounters an internal error. This can occur when SW
  246. can't find a screen definition file, the label within the file, a parameter
  247. error, or there isn't enough memory to display the window(s). SW returns EL
  248. 127 in these cases. You should code your batch file to check for and handle
  249. this situation.
  250.  
  251.                                  Notes on DOS
  252.  
  253. *     There is a limit to the length of a command line whether it is typed
  254.       directly from the DOS prompt or inside a batch file. This limit is 128
  255.       characters. Anything past that point will be ignored.
  256.  
  257. *     The Query feature described on page 8 makes use of Errorlevel codes to
  258.       allow the batch file to determine which key has been pressed. A series
  259.       of IF ERRORLEVEL x statements are used to test for the value. You must
  260.       test from largest to smallest since the statement will be true if the
  261.       value is equal to OR greater than x.
  262.  
  263. *     The User Input feature (page 9) and four DI switches make use of the
  264.       DOS Environment. (DOS 3.3 or higher is required for these features)
  265.       This is an area in memory containing information stored by your boot up
  266.       procedure as well as some programs. You can see this information by
  267.       typing SET from the command line. There are three variables commonly
  268.       found in the environment. PATH is a list of directories DOS will search
  269.       to find a program not in the current directory. You must set this
  270.       yourself, usually as part of the AUTOEXEC.BAT file. COMSPEC tells DOS
  271.       where to find COMMAND.COM. If it is anywhere but the root directory of
  272.       the boot drive, you will have to set it. PROMPT describes what the DOS
  273.       prompt will look like. Your DOS manual has more information.
  274.  
  275. *     To check the answers returned by User Input, the IF statement is used.
  276.       In your batch file, the variable name must be preceded and followed the
  277.       % sign. On page 9 is a quick example. If you wish to check the actual
  278.       value use this form:
  279.  
  280.                           IF "%ANS%"=="" goto Label
  281.  
  282.  
  283.                                     Page 2
  284.  
  285.                               Screen Wizard 4.6
  286.                            (c) 1993 - Warren Small
  287.  
  288.       This will branch to Label if the user entered nothing. Use IF NOT to
  289.       reverse the logic of the comparison. Adding NOT to the above example
  290.       would branch to Label if ANS had some value.
  291.  
  292. *     To be sure there is room in the environment you can set the size
  293.       manually when booting. "SHELL=C:\COMMAND.COM /E:512 /P" in your
  294.       CONFIG.SYS file will set the size to 512 bytes. This value can be as
  295.       large as 32768. 
  296.  
  297. 2.0  WINDOW APPEARANCE
  298. ─────────────────────────────────────────────────────────────────────────────
  299. /F#  Foreground Color   /B#  Background Color
  300.      Foreground and background colors for the window are set by the /f# and
  301.      /b# switches. The color can be selected using the numbers or names.
  302.      Valid background colors are limited to 0-7. If your command line gets to
  303.      be longer than 128 characters, use the numbers to gain some space. DOS
  304.      will ignore anything past the 128th position on the command line.
  305.  
  306.                                  Color Values
  307.  
  308.                     0 or bla = Black         8 or BLA = Grey          
  309.                     1 or blu = Blue          9 or BLU = Bright Blue   
  310.                     2 or gre = Green         10 or GRE = Bright Green  
  311.                     3 or cya = Cyan          11 or CYA = Bright Cyan   
  312.                     4 or red = Red           12 or RED = Bright Red    
  313.                     5 or mag = Magenta       13 or MAG = Bright Magenta
  314.                     6 or yel = Brown         14 or YEL = Yellow        
  315.                     7 or whi = White         15 or WHI = Bright White  
  316.  
  317. /F#,# Border Background Color
  318.      By default, the background color of the window frame is defined by the
  319.      /B parameter. If you want the window border to have a different back-
  320.      ground color, use the /F switch with two colors. The first defines the
  321.      normal foreground color as above and the second, separated by a comma,
  322.      will be used as the border background color. Using just a comma followed
  323.      by a color will use the default foreground color. The colors can be any
  324.      combination of the numbers or names shown above. For example, /FWHI,4
  325.      will result in a border that is bright white on red. /F15,gre results in
  326.      bright white on green. /F,whi will use the default foreground color YEL
  327.      and the background will be white. As above, the only valid colors for
  328.      the background are the first 8. NOTE: When using a window separator (p.
  329.      11) it will use the foreground and background colors of the window
  330.      border.
  331.  
  332. /L#  Window Border (Lines)
  333.      Border type is defined by the /l# (line) switch.
  334.  
  335.                     /l0 - none     /l1 - ┌─       /l2 - ╔═
  336.                     /l3 - ╒═       /l4 - ╓─       /l5 - █▀
  337.  
  338.      If a character is used instead of a number, it will be used as the
  339.      window border. (e.g. /l* or /l▓).
  340.  
  341.                                     Page 3
  342.  
  343.                               Screen Wizard 4.6
  344.                            (c) 1993 - Warren Small
  345.  
  346.  
  347. /S#  Shadows
  348.      A shadow can be added with the /s# option. If the shadow covers other
  349.      characters on the screen they will be darkened, rather than hidden.
  350.  
  351.                          /s1 - right, below (default if /s is used alone)
  352.                          /s2 - left, below
  353.                          /s3 - right, above
  354.                          /s4 - left, above. 
  355.  
  356. /3D# 3-D Frame
  357.      The window border can be given a 3-D effect with this switch. The effect
  358.      is a darkening of one side and top or bottom of the frame. It can be
  359.      used in combination with the /S# switch and will default to the same
  360.      value if used without a number specified. The # can be 1-4 and refers to
  361.      the same area of the frame as the /S values above.
  362.  
  363. Examples:  SW "3-D Test" /s2 /3D   Frame is darkened on the same side as /S
  364.            SW "3-D Test" /3D4      Top and left side of frame darkened
  365.            SW "3-D Test" /s2 /3D3  Frame darkened on side opposite shadow
  366.  
  367.      The D can be omitted as it is only used for clarity. Some experimenta-
  368.      tion will be required for the best color combinations.
  369.  
  370. /W   Wide Edge
  371.      The /w switch will give your window a wide edge, making it 2 rows taller
  372.      and 4 columns wider. Using this option will reduce the maximum string
  373.      length by 6 and the maximum number of lines by 2. The /w switch will
  374.      have no effect on a window with no border (/l0).
  375.  
  376. /2   Double Spacing   /0  No Margin
  377.      The /2 option will add a blank line between each text line passed. The
  378.      /0 switch removes the blank space between the border and first and last
  379.      lines of text. Combine /0 with the /l0 switch and the resulting window
  380.      will be only as large as needed for the text passed.
  381.  
  382. /R#  Row   /C#  Column
  383.      The position of the window can be set using the /r# (row) and /c# (col-
  384.      umn) switches. These are referenced to the upper left corner of the
  385.      window. If the window is too big to fit, these coordinates will be
  386.      adjusted by the program. Thus if you have a line that places a window in
  387.      the lower right hand corner and you want to add a shadow, just put a /s
  388.      on the end of the line and the window will be positioned properly
  389.      without changing the row and column switch values.
  390.  
  391.      If you wish to set the size of the window yourself, a second /r# and /c#
  392.      will define the bottom row and right column. If the text passed to SW
  393.      will not fit in the window, these settings will be adjusted by SW auto-
  394.      matically, adjusting the bottom and right sides first. If you set only
  395.      top and bottom or left and right, SW will calculate the proper values
  396.      for you.
  397.  
  398.  
  399.                                     Page 4
  400.  
  401.                               Screen Wizard 4.6
  402.                            (c) 1993 - Warren Small
  403.  
  404.      A shorthand version of absolute sizing is available. You can now show
  405.      the start and end with one switch for the height, /r#### and one for the
  406.      width, /c####. The first 2 digits are the start value. /r1020 is equiva-
  407.      lent to /r10 /r20, saving 3 characters on the line. 
  408.  
  409. /H#  Here
  410.      For simpler positioning, /h# (here) will set the row according to the
  411.      present cursor position adding # to it if provided. The value can be
  412.      plus or minus. Use the /h# switch when you're trying to mix screen
  413.      output from another program with an SW window. The window can be easily
  414.      placed relative to the other text and will be centered left to right
  415.      unless you use the /c# switch.
  416.  
  417. /D   Draw Window
  418.      When a Pause, Query or User Input is utilized, the window will "popup"
  419.      on the screen and disappear when the pause finishes or the input has
  420.      been processed. If you want the window to be left on the screen, specify
  421.      the /d switch. This will draw the window instead. See page 7 for more
  422.      information on Pause, Query and User Input.
  423.  
  424. ┌───────────────────────────────────────────────────────────────────────────┐
  425. │ NOTE TO PREVIOUS USERS  -  Since Pause, Query and User Input windows now  │
  426. │ disappear when the function is completed, you may wish to change your     │
  427. │ batch files by adding the /D switch.                                      │
  428. └───────────────────────────────────────────────────────────────────────────┘
  429.  
  430. /Z   Zoom Window
  431.      A special effect for SW is Zoom Window. Sometimes called "exploding" by
  432.      other applications, this switch will cause the window to be drawn in
  433.      several steps, from small to its final size. The shadow and border are
  434.      zoomed as well with the text added when the proper size is reached.
  435.  
  436. 3.0  TEXT APPEARANCE
  437. ─────────────────────────────────────────────────────────────────────────────
  438. /T#  Text Color   /G#  Global Text Color
  439.      Text color can be controlled with the /t# and /g# switches. Both use the
  440.      same color table shown above and both are position sensitive. /g# will
  441.      change the text color for all text following the switch. /t# will effect
  442.      only the text string immediately after the switch. Multiple /g# switches
  443.      could be used to color groups of lines. To make "text" blink, add 128 to
  444.      the color # or put a + after the color name. (e.g. red+ = 4 + 128 = 132
  445.      = blinking red). The window foreground color can also blink if desired.
  446.  
  447. /E#  Enhanced Text Color
  448.      This switch selects the "enhanced" text color. This is the color used
  449.      when you want to highlight characters within a line.  The location of
  450.      this switch is important as it effects only those lines of text that
  451.      follow it, like the /G# switch. In fact, you could use the switch to
  452.      give each line a different highlight color. 
  453.  
  454.      Marking characters to be highlighted in a line can be accomplished in
  455.      one of two ways. The Query example on page 8 shows the use of the ~
  456.  
  457.                                     Page 5
  458.  
  459.                               Screen Wizard 4.6
  460.                            (c) 1993 - Warren Small
  461.  
  462.      (tilde) character preceding the 'Y' and 'N' and will cause these charac-
  463.      ters to appear bright red (/eRED) while the rest of the text is the
  464.      default bright white. If the e parameter is omitted, Screen Wizard will
  465.      use the color of the current line with the opposite intensity. There is
  466.      no limit to the number of characters that can be highlighted on each
  467.      line.
  468.  
  469.      If you want to highlight a group of characters on a line, an alternative
  470.      to placing a ~ in front of each character is to surround the portion of
  471.      the line you want highlighted with curly braces ({ and }). If you need
  472.      to use any these characters on a line without highlighting, use a pair
  473.      of each. The string "{{Normal Text}}" will appear as "{Normal Text}" in
  474.      the window without being highlighted.
  475.  
  476. /M#  Border Message
  477.      A /m# preceding a text string marks the string as a Border Message. If
  478.      it is the first string in the window, it will appear at the top. If it
  479.      appears after the first line of regular text, the message will appear at
  480.      the bottom. The # must be l, r or c for left, right and center. Center
  481.      is the default if /m is used alone. The message color is defined the
  482.      same way as all other text with /t#, /g#, and /e#.
  483.  
  484. /J#  Justify
  485.      Text can be justified (aligned) to the left or right as well as the
  486.      default centering. This switch works on all strings following its posi-
  487.      tion, just like /g#. /jl will align text left and /jr will line up the
  488.      text to the right. /jc would restore the default.
  489.  
  490. 4.0  SCREEN APPEARANCE
  491. ─────────────────────────────────────────────────────────────────────────────
  492. /K#  Klear Screen (with optional Fill Character)
  493.      The /k# switch will clear the screen using the color # (0-7) and places
  494.      the cursor at the upper left corner. A single character can be added
  495.      after the # to give some texture to the screen. (e.g.  /k4─ or /kred─)
  496.      This can make the shadow effect more interesting. 
  497.  
  498. /K#  Klear Screen, set Foreground Color
  499.      A second /k# switch on the same line can be used to set the screen fore-
  500.      ground color (0-15). SW /kblu /kWHI sets the screen color to bright
  501.      white on blue. This will NOT affect the current DOS screen color. The
  502.      default screen foreground value is 7 or whi.
  503.  
  504. /K#  Klear Screen (with optional Fill String)
  505.      Instead of a simple fill character for the background, a string could be
  506.      used in the form /k#string. The string can be up to 80 characters long.
  507.      Interesting patterns will result depending on the length. Lengths like
  508.      2, 4, 5, 8, 10, etc. divide into 80 evenly. Other values result in each
  509.      line being offset from the last. Don't limit yourself to just words. Use
  510.      some of the special IBM characters in different combinations. The Demo
  511.      batch file has some examples. If you want spaces within the string,
  512.      either surround the string with quotes or substitute the underscore (_)
  513.      for each space. They will be replaced by spaces before being displayed.
  514.  
  515.                                     Page 6
  516.  
  517.                               Screen Wizard 4.6
  518.                            (c) 1993 - Warren Small
  519.  
  520. /O#  Outside Edge (Screen Border)
  521.      The /o# switch will set the screen border color. All color values are
  522.      valid. Using the switch without a color will reset the border to normal.
  523.      This switch could be used alone to set or reset the border. SW /ored
  524.      will set the screen border to red. Some programs ignore the border
  525.      color, others reset it and still others set one of their own. You will
  526.      have to experiment on your own is you wish to set a special border color
  527.      for a program.
  528.  
  529. /X#  Xtra Lines
  530.      SW is EGA 43 and VGA 28/50 line aware, i.e. if the screen is already in
  531.      one of those modes, SW will be able to utilize the entire screen. This
  532.      switch allows SW to setup 28, 43 and 50 line displays by using /X28,
  533.      /X43 and /X50 respectively. /X25 will return to the normal 25 line mode.
  534.      The maximum text lines displayed in a box is increased to 23 for the 28
  535.      line mode, 38 in the 43 line mode and 45 in the 50 line mode. 5 more
  536.      lines can be displayed if the window uses /L0 /0 for parameters.
  537.  
  538. /@#  Set Cursor
  539.      If you wish to move the cursor to a particular place on the screen, this
  540.      switch will accomplish it. The number which follows /@ can be a row or a
  541.      row and col. /@15 will place the cursor on row 15 col 1 and /@234 will
  542.      set it on row 2 col 34. The next text output to the screen will begin at
  543.      this point. It is important to note that setting the column to something
  544.      other than 1 will affect only the first line put on the screen. The rest
  545.      will start at the left margin. This switch does NOT affect SW's output.
  546.      A number greater than the current number of screen rows will cause the
  547.      cursor to be placed on the last line for that mode. A column number
  548.      greater than 80 will be converted to 1.
  549.  
  550. /@-  Hide Cursor
  551.      SW can hide the cursor after it has finished processing with this
  552.      switch. You can make the cursor reappear with any SW command which means
  553.      that you need to include this switch on each command line if you want
  554.      the cursor to remain hidden. Only one instance of the switch is neces-
  555.      sary in a screen definition.
  556.  
  557. /D#  Screen Saver Delay
  558.      SW has a simple screen saver to protect your monitor. The saver is used
  559.      with /Q and /I (see below). The delay defaults to 5 minutes but can be
  560.      altered with this switch. The value can range from 1 to 30 minutes or
  561.      can be set to zero which will disable the feature. In screen defini-
  562.      tions, the delay value is global, i.e. any /D# used within the defini-
  563.      tion is in effect for all the windows defined in it.
  564.  
  565. 5.0  OTHER SWITCHES
  566. ─────────────────────────────────────────────────────────────────────────────
  567. /P#  Pause
  568.      The /p# switch will pause for # 10ths of a second before proceeding. If
  569.      # = 0 or is missing the program will wait for the user to press a key.
  570.      If you combine Query and Pause, the pause will occur after the query
  571.      unless the query specifies a default (See below). Adding a - after the
  572.  
  573.                                     Page 7
  574.  
  575.                               Screen Wizard 4.6
  576.                            (c) 1993 - Warren Small
  577.  
  578.      number will allow the user to interrupt the timer. e.g. /p50- will pause
  579.      for 5 seconds or less if the user presses a key. Maximum value for pause
  580.      is 300 or 30 seconds.
  581.  
  582. /Q   Query (Controlled Branching)
  583.      The Query switch (/q...) allows user input of single characters. The
  584.      selected key sets the DOS Errorlevel allowing conditional branches in
  585.      your batch file. 
  586.  
  587. Example:   sw /eRED "Continue?" "~Yes  ~No" /qyn
  588.            if errorlevel 2 goto exit
  589.            if errorlevel 1 goto next
  590.  
  591.      This will wait for the user to press the 'y' or 'n' key rejecting all
  592.      other keystrokes with a 'beep'. If 'n' is pressed, Errorlevel 2 will be
  593.      set and the batch file will branch to the label ":exit". 'y' will cause
  594.      a branch to ":next".
  595.  
  596. /Q   Function Keys
  597.      The Query can also look for function keys, if desired. They can be
  598.      included in the string with other characters in the form "/qabc[F1]".
  599.      Pressing the F1 key, in this case, will return EL 4. F1 through F10 can
  600.      be used with F10 being represented by [F0]. See the section on Screen
  601.      Definitions beginning on page 12 for a special application of F1.
  602.  
  603. /Q   Special Characters, ~ ` ^ *
  604.      If the ~ (tilde) character immediately follows the /q, the ESC key is
  605.      also available and will set Errorlevel 0 if pressed. Up to 70 characters
  606.      can be designated as option keys. If you wish to use the space bar or
  607.      the piping (|) and redirection (< or >) characters, enclose all the
  608.      characters in quotes. (e.g. /q"abc "). Query is not case-sensitive.
  609.  
  610.      The ` or ^ character can be used to indicate a default choice for the
  611.      Query. This choice is available to avoid conflicts with NDOS/4DOS. The ^
  612.      symbol can also cause conflicts as the "command separator". However,
  613.      this definition can be changed in NDOS/4DOS.
  614.  
  615. Example:   sw /eRED "Continue?" "~Yes  ~No" /q^yn
  616.  
  617.      This makes a 'Y' the default. SW will return Errorlevel 1 if ENTER is
  618.      pressed. Also, by combining a pause with a default choice, SW will
  619.      return the default if no key is pressed before the pause time elapses.
  620.  
  621.      An asterisk (*) used in the Query string acts like a wild card choice.
  622.      SW will return an Errorlevel corresponding to its position in the
  623.      string.
  624.  
  625. Example:   sw /eRED "Press ~Y to Continue" "Any other key to abort" /qy*
  626.  
  627.      'Y' returns Errorlevel 1 and all other keys return 2. ESC and/or a
  628.      default response could be combined with the wildcard option as well.
  629.  
  630.  
  631.                                     Page 8
  632.  
  633.                               Screen Wizard 4.6
  634.                            (c) 1993 - Warren Small
  635.  
  636.      Pressing ENTER would then return the default choice as would a Pause
  637.      timeout.
  638.  
  639.      Users who wish SW to flush the keyboard buffer prior to checking for
  640.      Queries can use an uppercase /Q switch rather than a /q. In both cases,
  641.      the result of the query is the same.
  642.  
  643. /I#  User Input (Requires DOS 3.3 or higher)
  644.      The /i# switch will add an edit line to the window which will accept
  645.      User Input. The # defines the length of the line. This feature can be
  646.      used to ask for directory names, file names, drive letters or other
  647.      information which can then be used by the batch file. SW will put the
  648.      answer in the batch file's environment with the label ANS. DOS 3.3 or
  649.      higher is needed for this feature. You can then use the ANS variable in
  650.      your batch file. A Pause used with this feature will occur after the
  651.      input.
  652.  
  653. Example:   sw "Which Directory?" /i40
  654.            if exist %ans%\nul cd %ans%
  655.  
  656.      This does has some limitations since it is difficult to check the
  657.      validity of the answer from a batch file.
  658.  
  659. ┌───────────────────────────────────────────────────────────────────────────┐
  660. │ NOTE TO SW 3.8 USERS: If you have used the /i# switch in your batch files,│
  661. │ be sure to remove the line "CALL SW-ENV.BAT" since SW 4.x does not create │
  662. │ the  batch file in favor of direct  manipulation of the environment.      │
  663. └───────────────────────────────────────────────────────────────────────────┘
  664.  
  665. /I#var  User Input, Custom Variable Name
  666.      Optionally, you can specify your own environment variable name with the
  667.      /i# switch. The variable is indicated by a string, up to 8 characters
  668.      long, placed after the number. e.g. /i24Dir gives you a 24 character
  669.      field and places the answer in the environment variable DIR. (All envi-
  670.      ronment variables are shifted to upper case.) This allows you to get
  671.      more than one string before processing. Just be sure your environment is
  672.      sized properly. Check the SHELL command in your DOS manual.
  673.  
  674.      The string input editing keys include HOME, END,  ,  , BackSpace, DEL,
  675.      INSert and Overtype modes and use of the ESCape key for aborting. A
  676.      large cursor indicates the Overtype mode and a small cursor signifies
  677.      Insert. 
  678.  
  679.      IMPORTANT NOTE: SW 4.2a altered the action of ESC by NOT changing the
  680.      original value and returning EL 1 to the batch file. This prevents
  681.      unnecessary alteration of the environment. If an error occurs when SW
  682.      tries to add the result to the environment, an EL 2 will be returned. EL
  683.      0 is returned with normal input.
  684.  
  685.      When using the /I switch, SW will check the environment to see if the
  686.      variable you are using is already present. If it is, the value will be
  687.      used as a default value in the User Input field. A SET command should
  688.  
  689.                                     Page 9
  690.  
  691.                               Screen Wizard 4.6
  692.                            (c) 1993 - Warren Small
  693.  
  694.      always precede an SW call with the /I switch. If you do NOT want a
  695.      default, you have to make sure the variable is not present. 'SET ANS='
  696.      preceding the input call will make sure there is no value in the ANS
  697.      variable. 
  698.  
  699.      Like the /Q switch, /I will flush the keyboard buffer if an uppercase /I
  700.      is used rather than /i. The results for both are equivalent.
  701.  
  702. /I#  User Input, Multiple strings
  703.      Assuming that you have adequate space in your environment, you can
  704.      retrieve more than one string from a user with only one call to SW. This
  705.      is only practical for screen definitions since it requires a good deal
  706.      of information to set it up and probably would not fit in a 128 charac-
  707.      ter command line. Each input defined would need its own variable name
  708.      and prompt. The only caveat to this method is that an ESC is not record-
  709.      ed except by the last /I to be processed.
  710.  
  711. /I####  User Input, Long Strings
  712.      If you need to get string input that is longer than the maximum field
  713.      length of 70 , use the form /I####. The last 2 digits define the field
  714.      size and the rest of the number represents the maximum length of the
  715.      string. e.g /I8020 defines a 20 character field with a maximum string
  716.      length of 80. Additionally, if the default value found in the environ-
  717.      ment exceeds the string length, SW will automatically adjust to compen-
  718.      sate. However, the string cannot be made any longer. Maximum string
  719.      length is 127 characters minus the length of the variable name. Maximum
  720.      field length is 70 if it is on a line by itself. The field size will be
  721.      adjusted if its length plus the length of text on the same line exceeds
  722.      70 or 64 if using wide margins.
  723.  
  724. /I##*  User Input, Password Blanking
  725.      For anyone wanting to use SW to get password input, add an asterisk
  726.      between the length and the variable name (if used). This prevents the
  727.      password from being displayed on the screen by substituting an asterisk
  728.      for each character entered, improving security. It is important to note
  729.      that since a batch file is being used to check to validity of the entry,
  730.      someone could find out what the password is by looking at the file so
  731.      you should at least hide the file to make it more difficult to circum-
  732.      vent. 
  733.  
  734. /N#  Input Line Number
  735.      By default, the User Input field is placed on the last line of the box.
  736.      By using the /n# switch, the field can be placed on any line. If # is
  737.      positive, the field will appear after the string on line #. If # is
  738.      negative, the field will appear by itself on line #.
  739.  
  740. /U   Input Uppercase
  741.      If you want only uppercase characters in the answer, use the /u switch.
  742.      This can be useful when asking for a drive letter and want to put the
  743.      results on the screen for verification.
  744.  
  745.  
  746.  
  747.                                    Page 10
  748.  
  749.                               Screen Wizard 4.6
  750.                            (c) 1993 - Warren Small
  751.  
  752. /D   Draw Window
  753.      Pause, Query and User Input windows "popup" on the screen, i.e they
  754.      disappear after the Pause, Query or Input finish. /D is used if you want
  755.      the window to stay on the screen. 
  756.  
  757. /ch  Fill Line
  758.      This parameter is used to indicate a character which will be used to
  759.      fill a text line position in the window. Any character that is not
  760.      already used by another switch is valid. This switch could be used for
  761.      horizontal separators in the text box using a ─ (ASCII 196) or a ═
  762.      (ASCII 205). The area filled is just inside the border of the box. The
  763.      switch should be positioned as if it were a string on the command line
  764.      or within the Screen Definition. Its color can be specified the same as
  765.      a normal text line. See the first Screen Definition on Page 13 for an
  766.      example of its use.
  767.  
  768. /ch/ Window Separator
  769.      This switch is similar to Fill Line except that it will fill the line
  770.      completely. If a horizontal line drawing character (ASCII 196 or 205) is
  771.      used along with borders /l1 through /l4, the line will be connected to
  772.      the border. The line will assume the color of the border.
  773.  
  774. /A#  Alert   /A#,#  Alert with Frequency, Duration
  775.      The Alert switch (/a#) can be used to produce the normal IBM beep if #
  776.      is 0 or missing. If that's too boring, nine other sounds can be produced
  777.      varying from simple tones to more complex sounds using the values below.
  778.  
  779.  
  780.                              Alert Switch Values
  781.  
  782.                      1 - Low Freq Tone     5 - Bweep Two
  783.                      2 - Mid Freq Tone     6 - Bomb     
  784.                      3 - High Freq Tone    7 - Siren    
  785.                      4 - Bweep One         8 - Phasor   
  786.                                  9 - Tweeter
  787.  
  788.      The demo batch file gives you a chance to try them all.
  789.  
  790.      The /A switch can also produce any tone that the PC speaker can put out.
  791.      Using the form /A##,##, the first number will be the frequency of the
  792.      tone (20-20000) and the second is its duration (1-300 tenths of a sec-
  793.      ond). Using a screen definition, songs are actually possible using a
  794.      series of lines like "_window /a440,1". This produces a 440 hertz tone
  795.      for 1 tenth of a second. SW46DEMO.BAT has some short examples. The use
  796.      of a screen definition is needed for speed of execution. Trying this
  797.      from several command lines in the batch file will result in a less than
  798.      smooth output.
  799.  
  800.      For you musicians out there, there is an easier way to create those
  801.      little tunes. Notes can be specified with the /A switch as well. Middle
  802.      C is designated as C4. A sharp is shown as C4# and a flat as B3b. The
  803.      full form of the switch is /AA4,10 which will play an A, 4th octave, for
  804.  
  805.                                    Page 11
  806.  
  807.                               Screen Wizard 4.6
  808.                            (c) 1993 - Warren Small
  809.  
  810.      1 second. The tunes in SW46DEMO.BAT use this form of /A. The valid range
  811.      is from E0 to B9. It should be noted that the IBM speaker has limita-
  812.      tions in reproducing high notes and the practical limit is probably
  813.      around a G9 or about 12,000 Hz. Your results could vary depending on
  814.      your computer type.
  815.  
  816. /A##-##[,##]  Alert Sweep
  817.      A quick sweep of tones can be programmed with this form of the /A
  818.      switch. This first number is the start frequency. After the hyphen is
  819.      the finish frequency. Optionally, the third number can be used to define
  820.      the number of steps to be used from the start frequency to the finish
  821.      frequency. Each tone is sounded for about 1/18th of a second so 18 steps
  822.      will take about 1 second. The default is 10 steps. Any valid frequency
  823.      can be used. Note values are not accepted.
  824.  
  825. Example:   sw /a100-1000,15
  826.  
  827.      This will start at 100 Hz and reach 1000 Hz in 15 steps. The start
  828.      frequency can be larger than the finish frequency for a reverse sweep.
  829.  
  830. 6.0  DEFAULTS
  831. ─────────────────────────────────────────────────────────────────────────────
  832.      Yellow double line border on a centered blue window with white single-
  833. spaced text. Text is centered. No Clear Screen, Shadow or Zoom.  Enhanced
  834. color will default to the text color with the opposite intensity. Default
  835. environment variable for /I is ANS. Screen Saver Delay default is 5 minutes.
  836. (/fYEL /bblu /gWHI /l2 /jc /ewhi /d5)
  837.  
  838. Example:   sw /kwhi /fblu /bred /gYEL "Line 1" /tWHI "Line 2" "Line 3" /s2
  839.  
  840.      This will display a blue (/fblu) on red (/bred) window with a shadow to
  841. the left and below it (/s2). The screen color will be white (/kwhi). Lines 1
  842. and 3 are bright yellow (/gYEL) and line 2 is bright white (/tWHI). See the
  843. batch file SW46DEMO.BAT for many more examples.
  844.  
  845.      If no text strings are passed, features such as Clear Screen (/k#),
  846. Query (/q...), Pause (/p#), Alert (/a#[,#]), and Outside Edge (/o#) can be
  847. used with no window output. (e.g. sw /p10 will pause for 1 second.)
  848.  
  849. 7.0  SCREEN DEFINITIONS
  850. ─────────────────────────────────────────────────────────────────────────────
  851.      Screen Definitions, introduced with version 4.0, greatly enhance the
  852. flexibility and power of SW. It simplifies the command line by putting all
  853. the switches and text into a file that SW can read into memory. Multiple
  854. windows can be defined in the file and displayed with one call to SW. Also,
  855. text handling by one window is expanded to 25 single spaced lines, more if
  856. EGA or VGA modes are used (See /X#, page 7).
  857.  
  858.      When you run SW46DEMO.BAT, you can easily see the advantages of using a
  859. screen definition. All switches just described are applicable in a screen
  860. definition, including Query, Pause, and User input. Windows will be displayed
  861.  
  862.  
  863.                                    Page 12
  864.  
  865.                               Screen Wizard 4.6
  866.                            (c) 1993 - Warren Small
  867.  
  868. in the order that they are read from the file. A pause with the third window
  869. causes the pause to take place after the third window is displayed.
  870.  
  871.      In the batch file, the syntax for using a screen definition is:
  872.  
  873.                        SW @filename [label1 label2 ...]
  874.  
  875.      The definition can be in a separate file or even within the same batch
  876. file (See note on page 15). If it is in a separate file, the default exten-
  877. sion  .SW will be used if none is provided. The optional label is used when
  878. more than one definition is in the file. The default label is 'Display'.
  879. 'End_Display' marks the end of the definition.
  880.  
  881.      As shown in the syntax example, more than one label can be specified on
  882. the command line. This allows combinations of screen defs from the same file
  883. with only one call to SW. You can define different backgrounds and combine
  884. them with different windows. You can also use this feature to reuse back-
  885. grounds without having to redefine them for each window. This can reduce the
  886. size of the screen def file as well as speeding up processing since SW is
  887. called only once and the file is opened only once. Please note that, if you
  888. want to combine a screen def that uses the default label 'Display', you will
  889. need to explicitly include that label on the command line.
  890.  
  891. ┌───────────────────────────────────────────────────────────────────────────┐
  892. │ Default Label       │ :Display                                            │
  893. │ first window        │ _window /kcya┼ /r2 /s /bred /w /0                   │
  894. │ text 1              │ Screen Wizard - Expanded Text Handling!             │
  895. │ text 2, new color   │ /tWHI+ Multiple Windows!                            │
  896. │ text 3, footer      │ /m  v 4.6                                           │
  897. │ 2nd window          │ _window /r10 /s /bwhi /gblu /l1 /fred /0            │
  898. │ text 1, new color   │ /tBLU Optional Command Line Syntax:                 │
  899. │ text 2              │ SW @filename [label]                                │
  900. │ 3rd window          │ _window /r16 /s /bwhi /gblu /l1 /fred /0            │
  901. │ text 1, new color   │ /tBLU SW 4.x ADDITIONAL FEATURES                    │
  902. │ text 2, fill line   │ /tred /─                                            │
  903. │ text 3, justify left│ /jl - Define the entire screen with multiple windows│
  904. │ text 4              │    using external text files.                       │
  905. │ 4th window, pause   │ _window /r25 /l0 /0 /p100-                          │
  906. │ text 1              │ - Press any key for more -                          │
  907. │ 5th window, pause   │ _window /r19 /bwhi /gblu /l0 /jl /0 /p100-          │
  908. │ text 1              │ - Text handling can be expanded to 25 single-spaced │
  909. │ text 2              │   lines per window.                                 │
  910. │ .                   │ .                                                   │
  911. │ .                   │ .                                                   │
  912. │ Final label         │ :End_Display                                        │
  913. └───────────────────────────────────────────────────────────────────────────┘
  914.  
  915.      Shown above is a breakdown of a portion of one of the screen definitions
  916. that can be found in SW46DEMO.BAT. There are a total of 5 definitions used by
  917. the demonstration, three of which are within the batch file and two are from
  918. external files. 
  919.  
  920.  
  921.                                    Page 13
  922.  
  923.                               Screen Wizard 4.6
  924.                            (c) 1993 - Warren Small
  925.  
  926.      The _window line contains the switches that describe the window and
  927. screen and have the same form as they would on a command line, preceded by a
  928. slash and separated by a space. The lines that follow will be interpreted as
  929. text until another '_window' or the ':end_display' label is found. 
  930.  
  931.      The text switches can appear on the same line preceding the text. The /t
  932. switch is used to change the color of one line of text and is separated from
  933. the text by a space. /g can be used before a text line to change the color of
  934. every line that follows it. /j can be used to change the text alignment and
  935. /m is used to specify a border message. Finally, /e is used to specify the
  936. "enhanced" text color. Multiple switches can precede the text. The text can
  937. be enclosed by quotes if additional spaces before or after are desired. This
  938. example has 4 pauses and defines small windows that fit inside larger ones to
  939. change the text without redrawing the whole window.
  940.  
  941.      If a different label is needed, simply substitute it for 'Display'. The
  942. label can be up to 15 characters. In SW46DEMO.BAT two of  the other defini-
  943. tions use the labels 'Snd_Menu' and '4.6'.
  944.  
  945.      Note that when using the /k switch with a fill string in a screen
  946. definition, do not use quotes around the fill string. This is necessary
  947. because of the way the switch is processed when using the screen definition.
  948. As before, if you need spaces within the string, use the underscore (_)
  949. character. It will be replaced with a space.
  950.  
  951.      A Query will have to be the last item in the definition for the return
  952. code to be valid. User Input can occur anywhere but you will have to wait for
  953. the entire definition to be displayed before checking the answer.
  954.  
  955.      Environment variables will be evaluated when included inside a screen
  956. definition. This enables you to create a screen to display the user's answers
  957. or other information without having to resort to the command line mode. If
  958. the variable is not found, the variable name will be displayed in the window
  959. just as it appears in the screen definition. The variable is evaluated when
  960. the window is displayed.
  961.  
  962.      It is possible to "nest" screen definitions. One potential use is to
  963. reuse a portion of one definition and add a new window to it. Here's what a
  964. simple example would look like:
  965.  
  966.                                 :Display1    
  967.                                 :Display2    
  968.                                  _window ... 
  969.                                  text        
  970.                                 :End_Display1
  971.                                  _window ... 
  972.                                  text        
  973.                                 :End_Display2
  974.  
  975. The command "SW @file Display1" would show only the first window and "SW
  976. @file Display2" would display both. Any line beginning with a colon (:) is
  977.  
  978.  
  979.                                    Page 14
  980.  
  981.                               Screen Wizard 4.6
  982.                            (c) 1993 - Warren Small
  983.  
  984. ignored by SW. While not as elegant as using multiple labels on the command
  985. line, this technique could save some disk space.
  986.  
  987.      A Screen Definition can contain a special help window that can be
  988. accessed with the F1 key. A Query (page 8) or User Input field (page 9) must
  989. be part of the screen def. The Query does not need to include the F1 key. The
  990. help window is preceded by "_window_help" and is defined the same as a
  991. regular window. This window is displayed only when the F1 key is pressed. It
  992. is a "popup" window which will disappear after pressing any key. The "_win-
  993. dow_help" can appear anywhere in the definition and only one is permitted.
  994.  
  995.      When using _window_help and multiple labels on the command line, keep in
  996. mind that SW considers the entire group of windows from all labels as one
  997. screen definition. Therefore only one help window is permitted in the
  998. combination. Any other help windows will be displayed as regular windows with
  999. only the last one being designated as the help.
  1000.  
  1001. ┌───────────────────────────────────────────────────────────────────────────┐
  1002. │ One final note on Screen Definitions. If you include them in a batch file,│
  1003. │ be certain that the flow of the batch file does not go through the screen │
  1004. │ def. The DOS batch processor will not have any idea what those lines mean.│
  1005. │ If you see a lot of "Bad command or file name" appearing when the batch is│
  1006. │ run, check to see if the screen definition has been bypassed with a goto  │
  1007. │ or check for a goto that directs the batch file to the screen def.        │
  1008. └───────────────────────────────────────────────────────────────────────────┘
  1009.  
  1010. 8.0  TIPS AND TRICKS
  1011. ─────────────────────────────────────────────────────────────────────────────
  1012. *    Change the contents of a window without redrawing the whole thing. Use
  1013.      the /l0 and /0 switches to create a window just big enough for the text
  1014.      and without a border. This way you can overwrite part or all of the
  1015.      inside of a window and change the text in a flash. The first demo screen
  1016.      definition above uses this technique.
  1017.  
  1018. *    Use the ECHO batch file command to create screen definitions "on the
  1019.      fly". If you use the redirect character > and the redirect with append
  1020.      >> you can build a screen definition while running the batch file. In
  1021.      SW46DEMO.BAT, this method is used to create the help screen for DI.EXE.
  1022.      Here is a portion:
  1023.  
  1024.              echo :Display > di.hlp
  1025.              echo _window /kmag▒─┼─▒ /s /bred /r2 /0 /w >> di.hlp
  1026.              echo SW.EXE - Now with DI!>> di.hlp
  1027.              echo /mc  v 4.2 >> di.hlp
  1028.              echo _window /jl /s /0 /r9 >> di.hlp
  1029.              echo /mc  Disk Information >> di.hlp
  1030.              echo.>> di.hlp
  1031.              di >> di.hlp
  1032.              echo. >> di.hlp
  1033.              echo _window /r25 /bblu /l0 /0 /p300- >> di.hlp
  1034.              echo  - Press any key to continue - >> di.hlp
  1035.              echo :End_Display >> di.hlp
  1036.  
  1037.                                    Page 15
  1038.  
  1039.                               Screen Wizard 4.6
  1040.                            (c) 1993 - Warren Small
  1041.  
  1042.      The first line creates the file "di.hlp" and the following lines append
  1043.      to it. Then you call SW @di.hlp. Please note that, if quotes are used
  1044.      around any strings, the >> should be placed directly after the end quote
  1045.      so there won't be a space after it in the file. If there is a space, SW
  1046.      would display the end quote in the window which is probably not desir-
  1047.      able. You should also keep in mind when capturing text from another
  1048.      program, that any text longer than 72 characters will be truncated and
  1049.      should be less than 20 lines long unless you are using an EGA or VGA
  1050.      mode (See /X#, page 7). If more lines are found they are ignored. This
  1051.      way you can show the result of an operation without destroying the look
  1052.      of the screen.
  1053.  
  1054. *    Use the Enhanced text color attribute (/e#) to display text in two
  1055.      colors on the same line. You could make whole words stand out in this
  1056.      manner.
  1057.  
  1058.                     SW /tRED /eRED+ "{Blinking} Red"
  1059.  
  1060. *    If you want to display an empty window, set the size with /r#### and
  1061.      /c####, then pass one space in a string. SW /r814 /c2060 " "
  1062.  
  1063. *    Use a FOR loop to evaluate errorlevels returned by a Query. Although it
  1064.      is slower and requires the use of numbered labels, it can shorten a long
  1065.      series of IF ERRORLEVELs to one line. In the demo batch file, the sound
  1066.      menu uses a line like the following to select the sound:
  1067.  
  1068.   for %%e in (1 2 3 4 5 6 7 8 9 10 11 12) do if errorlevel %%e goto beep%%e
  1069.  
  1070. 9.0  SHAREWARE INFORMATION
  1071. ─────────────────────────────────────────────────────────────────────────────
  1072.      These programs are "shareware". You are allowed to use the programs,
  1073. free of charge, for a reasonable amount of time. If you find them to be
  1074. useful, and continue to utilize them, a registration fee of $15 is required.
  1075. This will entitle you to personal notification of future releases and give
  1076. your suggestions for enhancements more value. Many of the enhancements listed
  1077. in the history are the result of user comments and suggestions.
  1078.  
  1079.      CompuServe members can register SW through the service by entering the
  1080. command "GO SWREG" and following the prompts. Screen Wizard registration ID
  1081. is 641.
  1082.  
  1083.                              New Security Version
  1084.  
  1085.      If you have trouble with people messing with your screen definition
  1086. files, Screen Wizard is now available in a version which will read specially
  1087. encrypted files. The encryption scheme will not fool the CIA, but it should
  1088. keep curious people from playing with your screen definition files.
  1089.  
  1090.      This new version, called SWE, has all of the features of the regular
  1091. program and is completely compatible with it. It will read straight text
  1092. files as well as the encypted ones. The program which does the encrypting
  1093. (and decrypting for editing) is included with SWE and is very simple to use.
  1094.  
  1095.                                    Page 16
  1096.  
  1097.                               Screen Wizard 4.6
  1098.                            (c) 1993 - Warren Small
  1099.  
  1100.      If you want to receive SWE and the companion encypting program, the cost
  1101. is $15. Use the form provided to register either or both.
  1102.  
  1103.                            *** BONUS PROGRAMS! *** 
  1104.  
  1105.      Anyone registering SW 4.6 will receive a disk with the latest version,
  1106. plus an additional program, SWV.EXE. This program is a simple text file
  1107. viewer that integrates with SW. SW can generate a window and then call SWV to
  1108. display the file within that window. This can be indispensable when a batch
  1109. file needs to display a large amount of information with only a little work.
  1110. SWV includes features like Search, Place Marks, and Zoom to full screen. SWV
  1111. can be used as a stand-alone as well and is EGA 43 and VGA 28/50 line aware.
  1112.  
  1113.      You will also receive SW-DIR.EXE, a pop-up file directory for batch
  1114. files. It inherits many of the appearance switches of SW while allowing the
  1115. user to pick from the file list and return the name through the environment.
  1116. DOS 3.3 or higher is required.
  1117.  
  1118.      The newest bonus program is SW-DOS.EXE which allows SW to call DOS
  1119. commands or even batch files and have the output confined to a window. It can
  1120. be used to display the results of file copying, archive extractions and even
  1121. a shell to DOS. Now you don't have to sacrifice a nice SW screen just to be
  1122. able to see what your batch file is doing.
  1123.  
  1124.      Finally, you will receive some more examples of what can be done with SW
  1125. with a little work and imagination. Thanks to Bill Davis for HIS work and
  1126. imagination. There is also an example of how multiple strings can be re-
  1127. trieved with a screen definition.
  1128.  
  1129.      Registered SW 3.x users can upgrade to SW 4.6 for $5. This is a free
  1130. upgrade for SW 4.x users. 4.x users who wish to receive SWV, SW-DOS and SW-
  1131. DIR can do so by sending $2.50 for postage and handling to the address below.
  1132. Please specify disk size. The file SW-46.REG is provided to simplify regis-
  1133. tration and ordering. CompuServe Members can register by entering GO SWREG at
  1134. the ! prompt and registering ID #641. Just follow the instructions online.
  1135.  
  1136.      Site licenses can be negotiated. Feel free to give it to friends or
  1137. upload the original archive file to other BBS's provided that no fee is
  1138. charged for distribution and it is not modified in any way. Note to BBS
  1139. Sysops: Please post this archive file as is, with all files included, and
  1140. without changing the filename.
  1141.  
  1142.                     **** Bonus CD from JCS Marketing ****
  1143.  
  1144. When you register Screen Wizard, you will receive a certificate redeemable
  1145. for one issue of the "JCSM Shareware Collection" CD-ROM at half the normal
  1146. cost. This disk is a collection of over 2300 shareware programs from
  1147. nearly 1000 authors. The disk will cost $9.95 plus shipping and handling
  1148. when the certificate accompanies your order. If you are already a
  1149. subscriber, the certificate entitles you to receive your next CD at the
  1150. reduced rate.
  1151.  
  1152.  
  1153.                                    Page 17
  1154.  
  1155.                               Screen Wizard 4.6
  1156.                            (c) 1993 - Warren Small
  1157.  
  1158. Screen Wizard Ver. 4.6 - November 8, 1993
  1159.  
  1160. Warren Small           CIS  71076,407
  1161. 35 Benjamin Street     GEnie  W.SMALL
  1162. Manchester, NH  03109  Prodigy  RSJW31A
  1163.  
  1164.                             Screen Wizard History
  1165.  
  1166.      3.6 - 12/31/89  First general release.
  1167.  
  1168.      3.7 - 02/01/90  Increased text lines to 5. Colors can be specified with
  1169. 3 letter codes (p. 3). Added Here (/h#, p. 5), Double Spacing (/2, p. 4), No
  1170. Margin (/0, p. 4), Enhanced text color (/e#, p. 5).
  1171.  
  1172.      3.8 - 04/22/91  Added 3 border styles (p. 3), 3 shadow positions (p. 4),
  1173. Pause Interrupt (/p#-, p. 7), User Input (/i#, p. 9).
  1174.  
  1175.      4.0 - 10/31/91  User Input changed to modify environment rather than
  1176. create SW-ENV.BAT (p. 9). Removed limit on Highlighting (p. 5). Added custom
  1177. window border (/l#char, p. 3), Border Message (/m#, p. 6), Justify (/j#, p.
  1178. 6), Outside Edge color (/o#, p. 7), 9 Alert sounds (/a#, p. 11), Wide window
  1179. edge (/w, p. 4), Foreground color for screen (/k# /k#, p. 6), Query wildcard
  1180. (p. 8), default (p. 8), and Pause timeout (/q*^ /p#-, p. 8), Window size
  1181. control (/r# /r# /c# /c#, p. 4). Screen Definitions introduced (p. 12).
  1182.  
  1183.      4.1 - 12/1/91  Enhanced User Input (p. 9). Pause, Query and User Input
  1184. window changed to popup style. Added Fill String (/k#string, p. 6), Zoom
  1185. Window (/z, p. 5), Input Line (/n#, p. 10), Uppercase Input (/u, p. 10), Draw
  1186. Window to override popup (/d, p. 5, 11), custom environment variables
  1187. (/i#var, p. 9). New utility added to check disks (DI.EXE, see separate docs).
  1188.  
  1189.      4.2 - 2/2/92  Added Fill Line (/char, p. 11), shorthand window sizing
  1190. (/r#### /c####, p. 4), Alert Freq, Duration (/a#,#, p. 11) or Note, Duration
  1191. (/aN,#, p. 11), key buffer flush option for /Q (p. 9) and /I (p. 10), default
  1192. value for /I by setting environment variable (p. 9), Window appearance
  1193. modified slightly for bordered (1-4) and borderless windows. 5 text line
  1194. limit removed from command line form of SW. Environment variables are now
  1195. evaluated inside screen definitions (p. 14). 
  1196.  
  1197.      4.2a - 2/29/92  Fixed bug in environment variable evaluation in screen
  1198. files which caused rest of file to be read improperly. Added another Query
  1199. default indicator ^ for compatibility with NDOS (p. 8). User Input enhanced
  1200. to allow large string input in small fields (/I####, p. 10). 
  1201.  
  1202.      4.3 - 6/30/92  /x# added for EGA 43 line & VGA 50 line modes (p. 7). SW
  1203. now also detect and setup 43 and 50 line modes. Text lines longer than 70
  1204. characters are truncated without displaying an error. "Nested" labels
  1205. possible in screen defs (p. 14).
  1206.  
  1207.      4.3a - 9/16/92  Corrected /w /l5 /─ bug. Added multi-input capability
  1208. for screen defs (p. 10).
  1209.  
  1210.  
  1211.                                    Page 18
  1212.  
  1213.                               Screen Wizard 4.6
  1214.                            (c) 1993 - Warren Small
  1215.  
  1216.      4.3b - 11/22/92  Fixed /l0 /0 /x43 bug. Added /@# (p. 7) to set cursor
  1217. position and /@- to hide it (p. 7).
  1218.  
  1219.      4.4 - 12/16/92  Added /x28 mode for VGA displays (p. 7). Added use of {}
  1220. to highlight groups of characters (p. 5). Allowed /E# to be used for each
  1221. line of text (p. 5). Text handling increased for /L0 /0 windows to the
  1222. maximum the screen will allow (80 characters by 25, 28, 43 or 50 lines.)
  1223.  
  1224.      4.4a - 12/29/92  Fixed /I bug which caused input line to appear in the
  1225. wrong place.
  1226.  
  1227.      4.4b - 3/5/93  Help now in external file to shrink EXE and provide a way
  1228. for the user to customize it. Added password blanking to /I (p. 10).
  1229.  
  1230.      4.5 - 6/12/93  Window separator added (/ch/, p. 11). Function keys added
  1231. to Query (p. 8). Help window added to screen def (p. 15). Alert Sweep tones
  1232. added (p. 12).
  1233.  
  1234.      4.5a - 7/11/93  3-D frame effect added (/3D#, p. 4). /@ will handle out
  1235. of range values without error (p. 7). Default window size added for SWV and
  1236. SW-DOS (Registered version only).
  1237.  
  1238.      4.5b - 8/7/93  Help Window definition can now be used with a User Input
  1239. field (p. 15). Screen Saver added for User Input and Query with programmable
  1240. delay (/D#, p. 7). Altered the way environment variables are handled (p. 14).
  1241.  
  1242.      4.5c - 9/18/93  Default extension for screen definitions added (p. 12).
  1243. Border background color added (/f#,#, p. 3).
  1244.  
  1245.  
  1246.      4.5d - 9/30/93  Multiple labels can be specified on the command line
  1247. when using a screen definition file (p. 13).  Corrected window size when
  1248. using highlighting.
  1249.  
  1250.      4.6  - 11/6/93  Internal Errors now return EL 127(p. 2). New security
  1251. version, SWE, uses encrypted screen defs (p. 16).
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.                                    Page 19
  1270.